package com.tyk.bookstore.back.system.service;

import com.tyk.bookstore.back.system.manager.excel.model.PermissionExcelVo;
import com.tyk.bookstore.back.system.model.query.PermissionAddQuery;
import com.tyk.bookstore.back.system.model.query.PermissionPageQuery;
import com.tyk.bookstore.back.system.model.query.PermissionUpdateQuery;
import com.tyk.bookstore.back.system.model.vo.PermissionPageVo;
import com.tyk.bookstore.back.system.model.vo.PermissionSuggestionVo;
import com.tyk.bookstore.back.system.model.vo.PermissionVo;

import java.util.List;

public interface PermissionService {
    /**
     * 获取权限建议列表
     */
    List<PermissionSuggestionVo> getSuggestionList();

    /**
     * 分页查询权限列表
     */
    PermissionPageVo getPage(PermissionPageQuery query);

    /**
     * 根据ID获取权限信息
     */
    PermissionVo getById(Long id);

    /**
     * 新增权限
     */
    void add(PermissionAddQuery query);

    /**
     * 根据ID修改权限信息
     */
    void updateById(PermissionUpdateQuery query);

    /**
     * 根据ID删除权限信息
     */
    void deleteById(Long id);

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<PermissionExcelVo> getPermissionExcelVoList(PermissionPageQuery query);

    /**
     * 保存权限Excel
     *
     * @param permissionList 权限列表
     */
    void savePermissionExcelVoList(List<PermissionExcelVo> permissionList);
}
